﻿--[[
   @brief    ui logic for about wegame login update protocal 
   @author   planezhang
   @version  1.0
   @date     2020-07-16
--]]
login_update_protocal_view =
{    
    pDialog = nil;
    dwRootId = 0;
    protocal_version = 0;
    protocal_content = "";

    ierd_tgp.tpf_ui.Require("TPFLocalization.lua"); 
    
    protocal_agree_text_box_id1 = 0;

    init = function()
        ierd_tgp.tpf_ui.Log("login_update_protocal_view init.");
        login_update_protocal_view.pDialog = nil;
        login_update_protocal_view.dwRootId = 0;
        
        local tpfui = base_utility.get_component_adapter("ITpf_ui", "ierd_tgp.tpf_ui.GetTPFUI();");
        if tpfui ~= nil then
            login_update_protocal_view.is_english_ver = tpfui:Is_English_ver();
        end;

    end;
    
    show = function(parent_id, version, content)
        ierd_tgp.tpf_ui.Log("login_update_protocal_view show,version:" .. tostring(version));
        login_update_protocal_view.protocal_version = version;
        login_update_protocal_view.protocal_content = content;
        if login_update_protocal_view.pDialog ~= nil then
            login_update_protocal_view.pDialog:Restore();
            login_update_protocal_view.pDialog:Show(TRUE);
            login_update_protocal_view.pDialog:BringToTop();
            return;
        end;
        
        local main_uilib = ui_utility.uilib();
        if main_uilib == nil then
            ierd_tgp.tpf_ui.Log("login_update_protocal_view get main_uilib failure!");
            return;
        end;
        
        --login_update_protocal_view.dwRootId = layout_mgr.restore_layout_ex(parent_id, "login\\update_login_protocal.tpf");
        login_update_protocal_view.dwRootId = layout_mgr.restore_layout("login\\update_login_protocal.tpf");
        login_update_protocal_view.protocal_agree_text_box_id1 = ui_utility.get_ctrl_id_by_path(
                                            login_update_protocal_view.dwRootId, "ProtocalBorder\\ProtocalScrollView\\ProtocalRichText1");
                                            
        local cancel_btn_id =  ui_utility.get_ctrl_id_by_path(
                                            login_update_protocal_view.dwRootId, "Btn_cancel");                                    
        local pControl = main_uilib:GetControlPtr(login_update_protocal_view.dwRootId);
        login_update_protocal_view.pDialog = tolua.cast(pControl, "Tenio::ITDialog");
        if login_update_protocal_view.pDialog ~= nil then

            local protocal_agree_text_box_ptr = ui_utility.get_ctrl_ptr_by_id(login_update_protocal_view.protocal_agree_text_box_id1);
            if protocal_agree_text_box_ptr ~= nil then
                local sTemp = login_update_protocal_view.protocal_content;--"请仔细阅读并同意以下三份协议后,<a id=\"1\"  href=\"http://www.test.com\"> test</a>方可使用本软件及相关服务。如您不同意以下三份协议的，请点击取消退出登录程序，您点击下面“确认”或使用本软件的，均视为您已详细阅读并同意以下三分协议及其更新的内容： 1《软件许可及服务协议》 本次更新条款为： 1.1 更新条款内容文字 2《隐私政策》 本次更新条款为： 7.6 更新条款内容文字 3《儿童隐私保护声明》 本次更新条款为： 1.2 更新条款内容文字三份协议后,方可使用本软件及相关服务。如您不同意以下三份协议的，请点击取消退出登录程序，您点击下面“确认”或使用本软件的，均视为您已详细阅读并同意以下三分协议及其更新的内容： 1《软件许可及服务协议》 本次更新条款为： 1.1 更新条款内容文字 2《隐私政策》 本次更新条款为： 7.6 更新条款内容文字 3《儿童隐私保护声明》 本次更新条款为： 1.2 更新条款内容文字";
                local   sText = U8toCUIStr(sTemp);
                protocal_agree_text_box_ptr:PushBackHtmlString(sText);
            end;
            -- en
            if base_utility.get_current_language() == 2 then  
                local cancel_button_text = LoadStr("ID_TPF_CANCEL");
                ui_utility.setproperty_by_id(cancel_btn_id, "Width", "48");
                ui_utility.setproperty_by_id(cancel_btn_id, "Caption", cancel_button_text);
            end;

            login_update_protocal_view.pDialog:Show(TRUE);
            login_update_protocal_view.pDialog:BringToTop();
        else
            ierd_tgp.tpf_ui.Log("create about dialog error!!!");
            return;
        end;        
    end;
    
    close = function(uilib, dwControlId)
        if login_update_protocal_view.pDialog ~= nil then
            login_update_protocal_view.pDialog:Show(FALSE);
        end;
        local params = {agreed = 0, protocal_version = login_update_protocal_view.protocal_version};
        layout_mgr.delay_remove_ctrl(login_update_protocal_view.dwRootId);
        login_update_protocal_view.init();
        local agree_service = comm_center.call_service("Svr_LoginProtocalAgreed",params);
    end;

     on_hyperlink_click = function(uilib, dwControlId, hyberlink_rc, hyberlink_id, hyberlink_name, left, top, keystate, ctrl,is_shift,is_alt, hyberlink)
        local hyberlink_id_text = string.format("%d", hyberlink_id);
      TGPLog.LogI("login_update_protocal_view", "hyberlink:" ..hyberlink);
        --  hyberlink_id是在language.xml 处STR_LOGIN_OFFSITE_LOGIN设定的
        local open_url = hyberlink;
        if open_url~= "" then
                local param = { 
                    type = "open_web", 
                    browser = "new", 
                    use_ptlogin = 1, 
                    url = open_url
                };
            web_utility.open_link(
                '{"type":"open_web", "browser":"sys", "url":"'..open_url..'", "use_ptlogin":"0"}');
        end;
    end;
    
    onok = function(uilib, dwControlId)
        if login_update_protocal_view.pDialog ~= nil then
            ierd_tgp.tpf_ui.Log("login_update_protocal_view hide dialog");
            login_update_protocal_view.pDialog:Show(FALSE);
        end;
        local params = {agreed = 1, protocal_version = login_update_protocal_view.protocal_version};
        layout_mgr.delay_remove_ctrl(login_update_protocal_view.dwRootId);
        login_update_protocal_view.init();
        local agree_service = comm_center.call_service("Svr_LoginProtocalAgreed",params);
    end;

    close_view = function ()
        if login_update_protocal_view.pDialog ~= nil then
            login_update_protocal_view.pDialog:Show(FALSE);
            layout_mgr.delay_remove_ctrl(login_update_protocal_view.dwRootId);
            login_update_protocal_view.init();
        end;
    end;
};
login_update_protocal_view.init();